<!doctype html>
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<!--<body bgcolor="#1D7A17">-->
<body >
     <ul>
		  <li><a href="00丨开篇词丨这样学Redis，才能技高一筹.html" target="main"> 00丨开篇词丨这样学Redis，才能技高一筹.html </a></li>
		<li><a href="01丨基本架构：一个键值数据库包含什么？.html" target="main"> 01丨基本架构：一个键值数据库包含什么？.html </a></li>
		<li><a href="02丨数据结构：快速的Redis有哪些慢操作？.html" target="main"> 02丨数据结构：快速的Redis有哪些慢操作？.html </a></li>
		<li><a href="03丨高性能IO模型：为什么单线程Redis能那么快？.html" target="main"> 03丨高性能IO模型：为什么单线程Redis能那么快？.html </a></li>
		<li><a href="04丨AOF日志：宕机了，Redis如何避免数据丢失？.html" target="main"> 04丨AOF日志：宕机了，Redis如何避免数据丢失？.html </a></li>
		<li><a href="05丨内存快照：宕机后，Redis如何实现快速恢复？.html" target="main"> 05丨内存快照：宕机后，Redis如何实现快速恢复？.html </a></li>
		<li><a href="06丨数据同步：主从库如何实现数据一致？.html" target="main"> 06丨数据同步：主从库如何实现数据一致？.html </a></li>
		<li><a href="07丨哨兵机制：主库挂了，如何不间断服务？.html" target="main"> 07丨哨兵机制：主库挂了，如何不间断服务？.html </a></li>
		<li><a href="08丨哨兵集群：哨兵挂了，主从库还能切换吗？.html" target="main"> 08丨哨兵集群：哨兵挂了，主从库还能切换吗？.html </a></li>
		<li><a href="09丨切片集群：数据增多了，是该加内存还是加实例？.html" target="main"> 09丨切片集群：数据增多了，是该加内存还是加实例？.html </a></li>
		<li><a href="10丨第1～9讲课后思考题答案及常见问题答疑.html" target="main"> 10丨第1～9讲课后思考题答案及常见问题答疑.html </a></li>
		<li><a href="11丨“万金油”的String，为什么不好用了？.html" target="main"> 11丨“万金油”的String，为什么不好用了？.html </a></li>
		<li><a href="12丨有一亿个keys要统计，应该用哪种集合？.html" target="main"> 12丨有一亿个keys要统计，应该用哪种集合？.html </a></li>
		<li><a href="13丨GEO是什么？还可以定义新的数据类型吗？.html" target="main"> 13丨GEO是什么？还可以定义新的数据类型吗？.html </a></li>
		<li><a href="14丨如何在Redis中保存时间序列数据？.html" target="main"> 14丨如何在Redis中保存时间序列数据？.html </a></li>
		<li><a href="15丨消息队列的考验：Redis有哪些解决方案？.html" target="main"> 15丨消息队列的考验：Redis有哪些解决方案？.html </a></li>
		<li><a href="16丨异步机制：如何避免单线程模型的阻塞？.html" target="main"> 16丨异步机制：如何避免单线程模型的阻塞？.html </a></li>
		<li><a href="17丨为什么CPU结构也会影响Redis的性能？.html" target="main"> 17丨为什么CPU结构也会影响Redis的性能？.html </a></li>
		<li><a href="18丨波动的响应延迟：如何应对变慢的Redis？（上）.html" target="main"> 18丨波动的响应延迟：如何应对变慢的Redis？（上）.html </a></li>
		<li><a href="19丨波动的响应延迟：如何应对变慢的Redis？（下）.html" target="main"> 19丨波动的响应延迟：如何应对变慢的Redis？（下）.html </a></li>
		<li><a href="20丨删除数据后，为什么内存占用率还是很高？.html" target="main"> 20丨删除数据后，为什么内存占用率还是很高？.html </a></li>
		<li><a href="21丨缓冲区：一个可能引发“惨案”的地方.html" target="main"> 21丨缓冲区：一个可能引发“惨案”的地方.html </a></li>
		<li><a href="22丨第11～21讲课后思考题答案及常见问题答疑.html" target="main"> 22丨第11～21讲课后思考题答案及常见问题答疑.html </a></li>
		<li><a href="23丨旁路缓存：Redis是如何工作的？.html" target="main"> 23丨旁路缓存：Redis是如何工作的？.html </a></li>
		<li><a href="24丨替换策略：缓存满了怎么办？.html" target="main"> 24丨替换策略：缓存满了怎么办？.html </a></li>
		<li><a href="25丨缓存异常（上）：如何解决缓存和数据库的数据不一致问题？.html" target="main"> 25丨缓存异常（上）：如何解决缓存和数据库的数据不一致问题？.html </a></li>
		<li><a href="26丨缓存异常（下）：如何解决缓存雪崩、击穿、穿透难题？.html" target="main"> 26丨缓存异常（下）：如何解决缓存雪崩、击穿、穿透难题？.html </a></li>
		<li><a href="27丨缓存被污染了，该怎么办？.html" target="main"> 27丨缓存被污染了，该怎么办？.html </a></li>
		<li><a href="28丨Pika如何基于SSD实现大容量Redis？.html" target="main"> 28丨Pika如何基于SSD实现大容量Redis？.html </a></li>
		<li><a href="29丨无锁的原子操作：Redis如何应对并发访问？.html" target="main"> 29丨无锁的原子操作：Redis如何应对并发访问？.html </a></li>
		<li><a href="30丨如何使用Redis实现分布式锁？.html" target="main"> 30丨如何使用Redis实现分布式锁？.html </a></li>
		<li><a href="31丨 事务机制：Redis能实现ACID属性吗？.html" target="main"> 31丨 事务机制：Redis能实现ACID属性吗？.html </a></li>
		<li><a href="32丨 Redis主从同步与故障切换，有哪些坑？.html" target="main"> 32丨 Redis主从同步与故障切换，有哪些坑？.html </a></li>
		<li><a href="33丨 脑裂：一次奇怪的数据丢失.html" target="main"> 33丨 脑裂：一次奇怪的数据丢失.html </a></li>
		<li><a href="34丨 第23~33讲课后思考题答案及常见问题答疑.html" target="main"> 34丨 第23~33讲课后思考题答案及常见问题答疑.html </a></li>
		<li><a href="35丨 Codis VS Redis Cluster：我该选择哪一个集群方案？.html" target="main"> 35丨 Codis VS Redis Cluster：我该选择哪一个集群方案？.html </a></li>
		<li><a href="36丨 Redis支撑秒杀场景的关键技术和实践都有哪些？.html" target="main"> 36丨 Redis支撑秒杀场景的关键技术和实践都有哪些？.html </a></li>
		<li><a href="37 _ 数据分布优化：如何应对数据倾斜？.html" target="main"> 37 _ 数据分布优化：如何应对数据倾斜？.html </a></li>
		<li><a href="38 _ 通信开销：限制Redis Cluster规模的关键因素.html" target="main"> 38 _ 通信开销：限制Redis Cluster规模的关键因素.html </a></li>
		<li><a href="39 _ Redis 6.0的新特性：多线程、客户端缓存与安全.html" target="main"> 39 _ Redis 6.0的新特性：多线程、客户端缓存与安全.html </a></li>
		<li><a href="40 _ Redis的下一步：基于NVM内存的实践.html" target="main"> 40 _ Redis的下一步：基于NVM内存的实践.html </a></li>
		<li><a href="41 _ 第35～40讲课后思考题答案及常见问题答疑.html" target="main"> 41 _ 第35～40讲课后思考题答案及常见问题答疑.html </a></li>
		<li><a href="加餐（1）_ Kaito：我是如何学习Redis的？.html" target="main"> 加餐（1）_ Kaito：我是如何学习Redis的？.html </a></li>
		<li><a href="加餐（1）_ 经典的Redis学习资料有哪些？.html" target="main"> 加餐（1）_ 经典的Redis学习资料有哪些？.html </a></li>
		<li><a href="加餐（3）丨Kaito：我希望成为在压力中成长的人.html" target="main"> 加餐（3）丨Kaito：我希望成为在压力中成长的人.html </a></li>
		<li><a href="加餐（4）丨Redis客户端如何与服务器端交换命令和数据？.html" target="main"> 加餐（4）丨Redis客户端如何与服务器端交换命令和数据？.html </a></li>
		<li><a href="加餐（5）丨 Redis有哪些好用的运维工具？.html" target="main"> 加餐（5）丨 Redis有哪些好用的运维工具？.html </a></li>
		<li><a href="加餐（6）_ Redis的使用规范小建议.html" target="main"> 加餐（6）_ Redis的使用规范小建议.html </a></li>
		<li><a href="加餐（7） _ 从微博的Redis实践中，我们可以学到哪些经验？.html" target="main"> 加餐（7） _ 从微博的Redis实践中，我们可以学到哪些经验？.html </a></li>
		<li><a href="期中测试题丨一套习题，测出你的掌握程度.html" target="main"> 期中测试题丨一套习题，测出你的掌握程度.html </a></li>
		<li><a href="期中测试题答案丨这些问题，你都答对了吗？.html" target="main"> 期中测试题答案丨这些问题，你都答对了吗？.html </a></li>
		<li><a href="结束语 _ 从学习Redis到向Redis学习.html" target="main"> 结束语 _ 从学习Redis到向Redis学习.html </a></li>
    </ul>
</body>
</html>